This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.

Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.

library("hdxstats")
Loading required package: S4Vectors
Loading required package: stats4
Loading required package: BiocGenerics

Attaching package: ‘BiocGenerics’

The following objects are masked from ‘package:stats’:

    IQR, mad, sd, var, xtabs

The following objects are masked from ‘package:base’:

    anyDuplicated, append, as.data.frame, basename, cbind, colnames, dirname, do.call, duplicated, eval, evalq, Filter, Find,
    get, grep, grepl, intersect, is.unsorted, lapply, Map, mapply, match, mget, order, paste, pmax, pmax.int, pmin, pmin.int,
    Position, rank, rbind, Reduce, rownames, sapply, setdiff, sort, table, tapply, union, unique, unsplit, which.max,
    which.min


Attaching package: ‘S4Vectors’

The following objects are masked from ‘package:base’:

    expand.grid, I, unname

Loading required package: Biobase
Welcome to Bioconductor

    Vignettes contain introductory material; view with 'browseVignettes()'. To cite Bioconductor, see 'citation("Biobase")',
    and for packages 'citation("pkgname")'.

Loading required package: QFeatures
Loading required package: MultiAssayExperiment
Loading required package: SummarizedExperiment
Loading required package: MatrixGenerics
Loading required package: matrixStats

Attaching package: ‘matrixStats’

The following objects are masked from ‘package:Biobase’:

    anyMissing, rowMedians


Attaching package: ‘MatrixGenerics’

The following objects are masked from ‘package:matrixStats’:

    colAlls, colAnyNAs, colAnys, colAvgsPerRowSet, colCollapse, colCounts, colCummaxs, colCummins, colCumprods, colCumsums,
    colDiffs, colIQRDiffs, colIQRs, colLogSumExps, colMadDiffs, colMads, colMaxs, colMeans2, colMedians, colMins,
    colOrderStats, colProds, colQuantiles, colRanges, colRanks, colSdDiffs, colSds, colSums2, colTabulates, colVarDiffs,
    colVars, colWeightedMads, colWeightedMeans, colWeightedMedians, colWeightedSds, colWeightedVars, rowAlls, rowAnyNAs,
    rowAnys, rowAvgsPerColSet, rowCollapse, rowCounts, rowCummaxs, rowCummins, rowCumprods, rowCumsums, rowDiffs,
    rowIQRDiffs, rowIQRs, rowLogSumExps, rowMadDiffs, rowMads, rowMaxs, rowMeans2, rowMedians, rowMins, rowOrderStats,
    rowProds, rowQuantiles, rowRanges, rowRanks, rowSdDiffs, rowSds, rowSums2, rowTabulates, rowVarDiffs, rowVars,
    rowWeightedMads, rowWeightedMeans, rowWeightedMedians, rowWeightedSds, rowWeightedVars

The following object is masked from ‘package:Biobase’:

    rowMedians

Loading required package: GenomicRanges
Loading required package: IRanges
Loading required package: GenomeInfoDb

Attaching package: ‘QFeatures’

The following object is masked from ‘package:MultiAssayExperiment’:

    longFormat

The following object is masked from ‘package:base’:

    sweep
library("dplyr")

Attaching package: ‘dplyr’

The following objects are masked from ‘package:GenomicRanges’:

    intersect, setdiff, union

The following object is masked from ‘package:GenomeInfoDb’:

    intersect

The following objects are masked from ‘package:IRanges’:

    collapse, desc, intersect, setdiff, slice, union

The following object is masked from ‘package:matrixStats’:

    count

The following object is masked from ‘package:Biobase’:

    combine

The following objects are masked from ‘package:S4Vectors’:

    first, intersect, rename, setdiff, setequal, union

The following objects are masked from ‘package:BiocGenerics’:

    combine, intersect, setdiff, union

The following objects are masked from ‘package:stats’:

    filter, lag

The following objects are masked from ‘package:base’:

    intersect, setdiff, setequal, union
library("ggplot2")
library("RColorBrewer")
library("tidyr")

Attaching package: ‘tidyr’

The following object is masked from ‘package:S4Vectors’:

    expand
library("pheatmap")
library("scales")
library("viridis")
Loading required package: viridisLite

Attaching package: ‘viridis’

The following object is masked from ‘package:scales’:

    viridis_pal
library("patchwork")
library("Biostrings")
Loading required package: XVector

Attaching package: ‘Biostrings’

The following object is masked from ‘package:base’:

    strsplit
library("xfun")

Attaching package: ‘xfun’

The following objects are masked from ‘package:base’:

    attr, isFALSE
data_filepath <- "vignettes/data/MBPqDF.rsd"
hdx_data <- extract_hdx_data(data_filepath) # DONE
[1] "You gave me a RSD file for your HDX-MSM data"
[1] "I will assume your input data has alreayd been pre-processed"
# TEST 1
# INPUT
data_selection <- hdx_data[,1:24]
all_peptides <- rownames(data_selection)[[1]]
starting_parameters <- list(a = NULL, b = 0.001,  d = NULL, p = 1)
# OUTPUT
results <- analyse_kinetics(data = data_selection, 
                            method = "fit", 
                            peptide_selection = all_peptides, 
                            start = starting_parameters)
[1] "INFO: Performing fitting of Deuterium uptake kinetics. Method: 'hdxstats::fitUptakeKinetics' "
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "model fit failed, likely exessive missing values"
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "model fit failed, likely exessive missing values"
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "model fit failed, likely exessive missing values"
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "model fit failed, likely exessive missing values"
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "model fit failed, likely exessive missing values"
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "model fit failed, likely exessive missing values"
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "model fit failed, likely exessive missing values"
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "Could not fit model, likely exessive missing values"
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "model fit failed, likely exessive missing values"
Error in nlsModel(formula, mf, start, wts) : 
  singular gradient matrix at initial parameter estimates
[1] "model fit failed, likely exessive missing values"
results$method
[1] "fitUptakeKinetics"
graphics_kinetic <- visualise_hdx_data(results, type="kinetics") 
[1] "INFO: I found  104  models in your results data."
graphics_kinetic[[1]] | graphics_kinetic[[2]] | graphics_kinetic[[3]]

graphics <- visualise_hdx_data(results, type="forest") 
[1] "INFO: I found  104  models in your results data."

#graphics[[1]] + graphics[[2]] + graphics[[3]]

data_selection <- hdx_data[,1:100]
all_peptides <- rownames(data_selection)[[1]] # get all peptides
starting_parameters <- list(a = NULL, b = 0.0001,  d = NULL, p = 1)
# OUTPUT
results <- analyse_kinetics(data = data_selection, 
                            method = "dfit", 
                            peptide_selection = all_peptides[37], 
                            start = starting_parameters)
[1] "INFO: Performing differential fitting of Deuterium uptake kinetics. Method: 'hdxstats::differentialUptakeKinetics' "
[1] "INFO: You did not specify a 'formula' for your fitting model."
[1] "INFO: Fitting will be performed for (default): 'formula <- value ~ a * (1 - exp(-b*(timepoint)^p)) + d' "
graphics <- visualise_hdx_data(results, type="kinetics")
[1] "INFO: I found  7  models in your results data."

colnames(HOIP)
 [1] "Protein"      "Start"        "End"          "Sequence"     "Modification" "Fragment"     "MaxUptake"    "MHP"          "State"       
[10] "Exposure"     "Center"       "Center.SD"    "Uptake"       "Uptake.SD"    "RT"           "RT.SD"       

EXAMPLE: Tutorial 1

csv_filename <- "MBP.csv"
csv_filepath <- system.file("extdata", csv_filename, package = "hdxstats")
data <- read.csv(csv_filepath)

columns_names <- c("hx_time", "replicate_cnt", "hx_sample") # to merge into new column names
columns_fixed <- c("pep_sequence", "pep_charge")

# transform data
data_wide <- pivot_wider(data.frame(data),
                        values_from = d,  # Deu_Uptake
                        names_from = columns_names, # Exposure_Time, Replicate, Other
                        id_cols = columns_fixed) # Sequence, Charge
Error in pivot_wider(data.frame(data), values_from = d, names_from = columns_names,  : 
  could not find function "pivot_wider"

EXAMPLE: Tutorial 3 (HOIP)

HOIPpath <- system.file("extdata", "N64184_1a2_state.csv", package = "hdxstats")
HOIP <- read.csv(HOIPpath)

HOIP_wide <- pivot_wider(data.frame(HOIP),
                         values_from = Center, # Deu_Uptake
                         names_from = c("Exposure", "State"), # Exposure_Time, State
                         id_cols = c("Sequence")) # Sequence

EXAMPLE: Case study

secA <- read.csv("inst/extdata/Project_2_SecA_Cluster_Data.csv")

secA_wide <- pivot_wider(data.frame(secA),
                        values_from = "Center",  # Deu_Uptake
                        names_from = c("Exposure", "File", "State"), # Exposure_Time, Other, State
                        id_cols = c("Sequence", "z")) # Sequence, Charge
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKVGhpcyBpcyBhbiBbUiBNYXJrZG93bl0oaHR0cDovL3JtYXJrZG93bi5yc3R1ZGlvLmNvbSkgTm90ZWJvb2suIFdoZW4geW91IGV4ZWN1dGUgY29kZSB3aXRoaW4gdGhlIG5vdGVib29rLCB0aGUgcmVzdWx0cyBhcHBlYXIgYmVuZWF0aCB0aGUgY29kZS4gCgpUcnkgZXhlY3V0aW5nIHRoaXMgY2h1bmsgYnkgY2xpY2tpbmcgdGhlICpSdW4qIGJ1dHRvbiB3aXRoaW4gdGhlIGNodW5rIG9yIGJ5IHBsYWNpbmcgeW91ciBjdXJzb3IgaW5zaWRlIGl0IGFuZCBwcmVzc2luZyAqQ3RybCtTaGlmdCtFbnRlciouIAoKYGBge3J9CmxpYnJhcnkoImhkeHN0YXRzIikKbGlicmFyeSgiZHBseXIiKQpsaWJyYXJ5KCJnZ3Bsb3QyIikKbGlicmFyeSgiUkNvbG9yQnJld2VyIikKbGlicmFyeSgidGlkeXIiKQpsaWJyYXJ5KCJwaGVhdG1hcCIpCmxpYnJhcnkoInNjYWxlcyIpCmxpYnJhcnkoInZpcmlkaXMiKQpsaWJyYXJ5KCJwYXRjaHdvcmsiKQpsaWJyYXJ5KCJCaW9zdHJpbmdzIikKbGlicmFyeSgieGZ1biIpCmBgYAoKYGBge3J9CmRhdGFfZmlsZXBhdGggPC0gInZpZ25ldHRlcy9kYXRhL01CUHFERi5yc2QiCmhkeF9kYXRhIDwtIGV4dHJhY3RfaGR4X2RhdGEoZGF0YV9maWxlcGF0aCkgIyBET05FCgoKIyBURVNUIDEKIyBJTlBVVApkYXRhX3NlbGVjdGlvbiA8LSBoZHhfZGF0YVssMToyNF0KYWxsX3BlcHRpZGVzIDwtIHJvd25hbWVzKGRhdGFfc2VsZWN0aW9uKVtbMV1dCnN0YXJ0aW5nX3BhcmFtZXRlcnMgPC0gbGlzdChhID0gTlVMTCwgYiA9IDAuMDAxLCAgZCA9IE5VTEwsIHAgPSAxKQojIE9VVFBVVApyZXN1bHRzIDwtIGFuYWx5c2Vfa2luZXRpY3MoZGF0YSA9IGRhdGFfc2VsZWN0aW9uLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZCA9ICJmaXQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcHRpZGVfc2VsZWN0aW9uID0gYWxsX3BlcHRpZGVzLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0ID0gc3RhcnRpbmdfcGFyYW1ldGVycykKYGBgCgpgYGB7cn0KcmVzdWx0cyRtZXRob2QKYGBgCgoKYGBge3IsIGZpZy53aWR0aD0gMjIsIGZpZy5oZWlnaHQgPSAxMH0KZ3JhcGhpY3Nfa2luZXRpYyA8LSB2aXN1YWxpc2VfaGR4X2RhdGEocmVzdWx0cywgdHlwZT0ia2luZXRpY3MiKSAKZ3JhcGhpY3Nfa2luZXRpY1tbMV1dIHwgZ3JhcGhpY3Nfa2luZXRpY1tbMl1dIHwgZ3JhcGhpY3Nfa2luZXRpY1tbM11dCmBgYAoKCgpgYGB7ciwgZmlnLndpZHRoPSAyMiwgZmlnLmhlaWdodCA9IDEwfQpncmFwaGljcyA8LSB2aXN1YWxpc2VfaGR4X2RhdGEocmVzdWx0cywgdHlwZT0iZm9yZXN0IikgCmBgYAoKCmBgYHtyLCBmaWcud2lkdGg9IDIyLCBmaWcuaGVpZ2h0ID0gMTB9CmdyYXBoaWNzW1sxXV0gfCBncmFwaGljc19raW5ldGljW1sxXV0KYGBgCgpgYGB7cn0KZ3JhcGhpY3NbWzFdXSRkYXRhCmBgYAoKYGBge3J9CmRhdGFfc2VsZWN0aW9uIDwtIGhkeF9kYXRhWywxOjEwMF0KYWxsX3BlcHRpZGVzIDwtIHJvd25hbWVzKGRhdGFfc2VsZWN0aW9uKVtbMV1dICMgZ2V0IGFsbCBwZXB0aWRlcwpzdGFydGluZ19wYXJhbWV0ZXJzIDwtIGxpc3QoYSA9IE5VTEwsIGIgPSAwLjAwMDEsICBkID0gTlVMTCwgcCA9IDEpCiMgT1VUUFVUCnJlc3VsdHMgPC0gYW5hbHlzZV9raW5ldGljcyhkYXRhID0gZGF0YV9zZWxlY3Rpb24sIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gImRmaXQiLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBlcHRpZGVfc2VsZWN0aW9uID0gYWxsX3BlcHRpZGVzWzM3XSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydCA9IHN0YXJ0aW5nX3BhcmFtZXRlcnMpCgpgYGAKCmBgYHtyfQpncmFwaGljcyA8LSB2aXN1YWxpc2VfaGR4X2RhdGEocmVzdWx0cywgdHlwZT0ia2luZXRpY3MiKQpgYGAKYGBge3J9CmdyYXBoaWNzCmBgYAoKCmBgYHtyfQpoZWFkKEhPSVApCmNvbG5hbWVzKEhPSVApCmBgYAoKRVhBTVBMRTogVHV0b3JpYWwgMQoKYGBge3J9CmNzdl9maWxlbmFtZSA8LSAiTUJQLmNzdiIKY3N2X2ZpbGVwYXRoIDwtIHN5c3RlbS5maWxlKCJleHRkYXRhIiwgY3N2X2ZpbGVuYW1lLCBwYWNrYWdlID0gImhkeHN0YXRzIikKZGF0YSA8LSByZWFkLmNzdihjc3ZfZmlsZXBhdGgpCgpjb2x1bW5zX25hbWVzIDwtIGMoImh4X3RpbWUiLCAicmVwbGljYXRlX2NudCIsICJoeF9zYW1wbGUiKSAjIHRvIG1lcmdlIGludG8gbmV3IGNvbHVtbiBuYW1lcwpjb2x1bW5zX2ZpeGVkIDwtIGMoInBlcF9zZXF1ZW5jZSIsICJwZXBfY2hhcmdlIikKCiMgdHJhbnNmb3JtIGRhdGEKZGF0YV93aWRlIDwtIHBpdm90X3dpZGVyKGRhdGEuZnJhbWUoZGF0YSksCiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlc19mcm9tID0gZCwgICMgRGV1X1VwdGFrZQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lc19mcm9tID0gY29sdW1uc19uYW1lcywgIyBFeHBvc3VyZV9UaW1lLCBSZXBsaWNhdGUsIE90aGVyCiAgICAgICAgICAgICAgICAgICAgICAgIGlkX2NvbHMgPSBjb2x1bW5zX2ZpeGVkKSAjIFNlcXVlbmNlLCBDaGFyZ2UKICAgICAgICAgICAgICAgICAgICAgICAgCgpgYGAKCkVYQU1QTEU6IFR1dG9yaWFsIDMgKEhPSVApCgpgYGB7cn0KSE9JUHBhdGggPC0gc3lzdGVtLmZpbGUoImV4dGRhdGEiLCAiTjY0MTg0XzFhMl9zdGF0ZS5jc3YiLCBwYWNrYWdlID0gImhkeHN0YXRzIikKSE9JUCA8LSByZWFkLmNzdihIT0lQcGF0aCkKCkhPSVBfd2lkZSA8LSBwaXZvdF93aWRlcihkYXRhLmZyYW1lKEhPSVApLAogICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzX2Zyb20gPSBDZW50ZXIsICMgRGV1X1VwdGFrZQogICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXNfZnJvbSA9IGMoIkV4cG9zdXJlIiwgIlN0YXRlIiksICMgRXhwb3N1cmVfVGltZSwgU3RhdGUKICAgICAgICAgICAgICAgICAgICAgICAgIGlkX2NvbHMgPSBjKCJTZXF1ZW5jZSIpKSAjIFNlcXVlbmNlCgpgYGAKCkVYQU1QTEU6IENhc2Ugc3R1ZHkKCmBgYHtyfQpzZWNBIDwtIHJlYWQuY3N2KCJpbnN0L2V4dGRhdGEvUHJvamVjdF8yX1NlY0FfQ2x1c3Rlcl9EYXRhLmNzdiIpCgpzZWNBX3dpZGUgPC0gcGl2b3Rfd2lkZXIoZGF0YS5mcmFtZShzZWNBKSwKICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzX2Zyb20gPSAiQ2VudGVyIiwgICMgRGV1X1VwdGFrZQogICAgICAgICAgICAgICAgICAgICAgICBuYW1lc19mcm9tID0gYygiRXhwb3N1cmUiLCAiRmlsZSIsICJTdGF0ZSIpLCAjIEV4cG9zdXJlX1RpbWUsIE90aGVyLCBTdGF0ZQogICAgICAgICAgICAgICAgICAgICAgICBpZF9jb2xzID0gYygiU2VxdWVuY2UiLCAieiIpKSAjIFNlcXVlbmNlLCBDaGFyZ2UKCmBgYA==